import 'package:api/pages/provider/provider/model/count_model.dart';
import 'package:api/pages/provider/provider/model/count_model02.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class ProviderHomePage extends StatefulWidget {
  @override
  _ProviderHomePageState createState() => _ProviderHomePageState();
}

class _ProviderHomePageState extends State<ProviderHomePage> {
  @override
  Widget build(BuildContext context) {
    CountModel model = Provider.of<CountModel>(context);
    return Scaffold(
      appBar: AppBar(title: Text("provider学习")),
      body: Container(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 第四步 显示
            // 第一种方式获取
            Text("watch显示 ${context.watch<CountModel>().count}"),
            // 第二种方法获取
            Text(" Provider.of显示 ${Provider.of<CountModel>(context).count}"),
            // 第三种显示方式 Consumer构建
            buildCustum(),
            // 第二个provider
            Text("第二个provider ${context.watch<CountModel02>().count}"),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {
          // 第三步 修改
          // 第一种修改方式
          // context.read<CountModel>().add();
          // 第二种修改方式
          model.add();

          // 第二个provider
          context.read<CountModel02>().add();
        },
      ),
    );
  }

  // 第三种方式使用居多
  buildCustum() {
    return Consumer<CountModel>(
        builder: (BuildContext context, CountModel countmodel, Widget child) {
      return Text("Consumer显示 ${countmodel.count}");
    });
  }
}
